﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;

namespace mesoBoard.Data.Repositories
{
    public class BBCodeRepository : IBBCodeRepository
    {
        private mbEntities db;

        public BBCodeRepository(mbEntities mbDataContext)
        {
            this.db = mbDataContext;
        }

        public BBCode GetBBCode(string Tag)
        {
            return db.BBCodes.FirstOrDefault(x => x.Tag.ToLower() == Tag.ToLower());
        }

        public IEnumerable<BBCode> GetBBCodes()
        {
            return db.BBCodes.AsEnumerable();
        }

        public BBCode GetBBCode(int BBCodeID)
        {
            return db.BBCodes.FirstOrDefault(x => x.BBCodeID == BBCodeID);
        }

        public void DeleteBBCode(int BBCodeID)
        {
            db.BBCodes.DeleteObject(db.BBCodes.FirstOrDefault(x => x.BBCodeID == BBCodeID));
            db.SaveChanges();
        }

        public void SaveBBCode(BBCode TheBBCode)
        {
            if (TheBBCode.EntityKey == null)
                TheBBCode.EntityKey = ((BBCode)db.GetObjectByKey(new System.Data.EntityKey("mbEntities.BBCodes", "BBCodeID", TheBBCode.BBCodeID))).EntityKey;

            db.BBCodes.ApplyCurrentValues(TheBBCode);
            db.SaveChanges();
        }

        public void CreateBBCode(BBCode TheBBCode)
        {
            db.BBCodes.AddObject(TheBBCode);
            db.SaveChanges();
        }
    }
}
